草庐IT

java treeset 抛出 illegalArgumentException : key out of range

全部标签

python - 嵌入 Python Zip 文件会抛出错误?

我正在尝试将pythonzip文件嵌入到我的应用程序中。我从python站点(win32站点)下载了zip文件。这是我用来设置python路径的代码#include...std::wstringexe_dir=L"\\exe\\path";std::wstringpython_path;python_path+=exe_dir+L"python-3.5.1-embed-win32.zip";Py_SetPath(python_path.c_str());Py_Initialize();//Error:"Py_Initialize:unabletoloadthefilesystemcod

c++ - 终止处理程序可以抛出异常吗?

以下程序的定义行为是什么(如果有)?#include#include#includevoidi_throw(){std::cout使用gcc和clang我得到以下输出:i_throw()caughtexception,re-throw()-ingAborted(coredumped)在前几条评论后编辑的示例。(我不知道为什么我有throw;和std::terminate();。我不想改变这个例子,所以只是假装这两个中只有一个在那里。) 最佳答案 上述问题可以归结为理解以下两个代码片段的行为。示例1:没有事件异常的抛出intmain(

c++ - 在什么情况下 std::unique_ptr::operator[] 可能抛出?

我的类有一个operator[],它所做的就是在unique_ptr上调用std::unique_ptr::operator[]>成员(member)。相关部分就是这样:templatestructFoo{T&operator[](constsize_tpos)constnoexcept{returndata_[pos];}std::unique_ptrdata_;};我已将运算符标记为noexcept。但是,unique_ptr::operator[]不是noexcept。我无法找出原因,也不知道我是否可以假设它永远不会抛出。unique_ptr::operator[]本身没有在文档

c++ - CMake 识别 MSVC(C 和 CXX),但仍然抛出 'No CMAKE_*_COMPILER found'

我一直在四处寻找,这个问题似乎以各种形式出现了很多。最常见的原因是缺少编译器,即C和CXX编译器未知。然而,就我而言,情况并非如此。我的机器上有C和C++编译器,例如通过VisualStudio,一切都可以正常编译。但是,通过cmake,会发生这种情况:>cmake.输出:--Buildingfor:VisualStudio142015--TheCcompileridentificationisMSVC19.0.24215.1--TheCXXcompileridentificationisMSVC19.0.24215.1CMakeErroratCMakeLists.txt:12(pro

c++ - std::vector<double> 销毁抛出 sigabrt

我有一个std::vectorGDB在其中显示它包含这些值:Wphvector[0]10.750281685547618double[1]0.0053087812248281997double[2]4.2807534148705719e-08double[3]5.7427427663508097e-07double[4]0double在函数退出时自动销毁时,它会抛出一个SIGABRT。0raiseraise.c640x7fffeec5ad051abortabort.c920x7fffeec5eab62__libc_messagelibc_fatal.c1890x7fffeec93d7b

c++ - 在传递给库函数之前检查值更好,还是捕获抛出的异常更好?

假设我正在使用一个库,该库的函数to_int接受一个字符串参数。如果字符串是数字的字符表示,则此函数返回一个int,例如"23"将返回23。如果字符串不是数字,它会抛出一个std::runtime_error。会不会更好:if(is_all_digits(str))x=to_int(str);elseoutput("notanint,idiot.Tryagain");或者try{x=to_int(str);}catch(...){output("notanint,idiot.Tryagain");} 最佳答案 有几种不同的错误处理技

c++ - 在抛出 'std::length_error' 实例后调用终止

这是我在这里的第一篇文章。由于我是新手,这个问题可能很愚蠢。当显示以下错误消息时,我正在编写一段代码,在抛出“std::length_error”的实例后调用终止什么():basic_string::_S_create/home/gcj/finals/home/gcj/quals中止的地方以下是有问题的代码,尤其是第39行到第52行。这对我来说很奇怪,因为这段代码几乎与第64行到第79行相同。intmain(){std::vectordirs,need;std::stringtmp_str;std::ifstreamfp_in("small.in");std::ofstreamfp_o

c++ - libc++ std::istringstream 不会抛出异常。漏洞?

在配置std::istringstream以在设置failbit时抛出异常后,我在libc++中没有发生任何异常(这是在linux下,在libcxxrt的支持下编译的libc++).我想这是libc++或libcxxrt中的错误:#include#includetemplatestd::istream&getvalue(std::istream&is,T&value,constT&default_value=T()){std::stringstreamss;std::strings;std::getline(is,s,',');ss>value).fail())value=defaul

c++ - 如何在不抛出的情况下构造 <stdexcept> 或 <system_error> 异常?

中定义的异常(例如std::logic_error、std::runtime_error及其子类,例如std::system_error)具有需要字符串参数的构造函数,例如:domain_error(conststring&what_arg);domain_error(constchar*what_arg);有后置条件strcmp(what(),what_arg.c_str())==0strcmp(what(),what_arg)==0分别。没有要求传递给构造函数的这些参数在这些异常的生命周期内保持有效,因此确保后置条件成立的唯一方法是复制并存储这些动态字符串。这需要内存,所以我假设他

c++ - noexcept 一个函数返回一个具有抛出析构函数的类

在下面的代码中,我认为断言不应该触发,但它确实触发了。structA{~A()noexcept(false);};Af()noexcept;intmain(){static_assert(noexcept(f()),"fmustbenoexcept");}函数f()显然是noexcept,但是noexcept(f())被评估为false。(在gcc和clang中)我是不是遗漏了什么或者是错误? 最佳答案 表达式e上的noexcept运算符告诉您表达式的潜在异常集是否为空。根据[except.spec]/(13.2),此集合包含析构函